This invention relates to coded modulation schemes used in communication systems and more particularly to the use of product codes and other concatenated codes in coded modulation schemes.
Coded modulations such as multi-level coding or block coded modulation (BCM) can be used to increase the information rate (spectral efficiency) of a communication system without decreasing power efficiency. This increase in the information rate is useful in a communication system in which speech signals are digitized and compressed before being transmitted. Higher compression saves bandwidth, but reproduction quality suffers under adverse conditions in the communication channel. The increased information rate with coded modulation permits less compression to be used, and hence reproduction quality can be improved. A greater information rate, i.e., a greater information capacity, also enables a communication system to accommodate more users.
Multi-level coding schemes, such as BCM, are described in H. Imai et al., "A New Multi-Level Coding Method Using Error Correcting Codes", IEEE Transactions on Information Theory vol. IT-23, pp. 371-377 (May 1977); S. Sayegh, "A Class of Optimum Block Codes in Signal Space", IEEE Transactions on Communications vol. COM-34, pp. 1043-45 (October 1986); A. R. Calderbank, "Multi-Level Codes and Multi-Stage Decoding", IEEE Transactions on Communications vol. COM-37, pp. 222-229 (March 1989); G. Karam et al., "Block-Coded Modulation Using Reed-Muller Component Codes with Multistage Decoding", European Transactions on Communications vol. 4, pp. 267-275 (May 1993); and T. Woerz et al., "Decoding of M-PSK Multilevel Codes", European Transactions on Communications vol. 4, pp. 299-308 (May 1993).
Recent publications on the suitability of BCM for Rayleigh fading channels include N. Seshadri et al., "Multi-Level Coded Modulations for Fading Channels", Proceedings of the Fifth Tirennia International Workshop on Digital Communications (E. Biglieri et al., eds.) pp. 341-352 (1992); N. Seshadri et al., "Coded Modulation with Time Diversity, Unequal Error Protection and Low Delay for the Rayleigh Fading Channel", Proceedings of First Universal Conference on Portable and Mobile Communications pp. 283-287 (September 1992); and N. Seshadri et al., "Multi-Level Block Coded Modulations with Unequal Error Protection for the Rayleigh Fading Channel", European Transactions on Communication vol. 4, pp. 325-334 (May 1993). Multi-level BCM is an attractive scheme for combined modulation and coding, particularly for Rayleigh fading environments where interleaving depth is a crucial factor in determining the bit error rate (BER) performance.
A transmitter using BCM and eight-point phase-shift keying (8-PSK) modulation is shown in FIG. 1a, in which a speech or other information source 11 generates an analog signal representing the speech or other information. The continuous analog speech signal is converted into a stream of digital data, such as binary bits, by a digitizer 12, such as an analog to digital converter, from which the digital data passes to a speech encoder 13.
The speech encoder 13 transforms the digital data from the digitizer 12 into a plurality of streams i.sub.0, i.sub.1, i.sub.2, . . . of encoded digital data elements, each stream representing a respective subset of the information in the information signal. In this 8-PSK example, there are three such streams i.sub.0, i.sub.1, i.sub.2, although it will be understood that an M-ary modulation other than 8-PSK, such as 16-PSK or 16-ary quadrature amplitude modulation (QAM), and other than three streams i of encoded digital data elements might be used. At least one of the streams of encoded data elements represents information in the speech signal that is more important than the information represented by the other streams.
The streams i.sub.0, i.sub.1, i.sub.2 are provided as inputs to a BCM encoder 14, which includes a plurality of block encoders 15 connected in parallel and a bits-to-symbol mapper 16. The input streams are encoded according to respective block codes C.sub.0, C.sub.1, C.sub.2, yielding respective output streams of codewords comprising respective streams b.sub.0, b.sub.1, b.sub.2 of coded bits. The codes C are called component codes, and have respective rates k.sub.i /N, i=0, 1, 2, . . . , where N is the block length and k.sub.i is the number of input symbols that are encoded in each block of N code symbols. This scheme provides an overall information rate R=(k.sub.0 +k.sub.1 +k.sub.2)/(N) information bits per code symbol. For illustration, let the code C.sub.0 be the most powerful code, followed by the code C.sub.1 and then the code C.sub.2. With such an arrangement, the bit stream i.sub.0 would represent the most important class of information, which may be called Class 0; the bit stream i.sub.1 would represent the next most important class, which may be called Class 1; and the bit stream i.sub.2 would represent the least important class, which may be called Class 2.
Each of the succession of triplets of code bits {b.sub.2 b.sub.1 b.sub.0 } produced by the block encoders 15 is used by the mapper 16 to select a respective one of the constellation of eight 8-PSK symbols according to a predetermined scheme. In this example, b.sub.2 is the most significant bit (MSB) and b.sub.0 is the least significant bit (LSB). A conventional bits-to-symbol mapper, which may be realized as a lookup table or as a combination of logic elements, uses either natural binary mapping or Gray coded mapping. In this way, three N-bit block codewords generated by the three block encoders 15 are transformed into one modulation codeword, comprising N modulation symbols.
The bits-to-symbol mapper 16 produces a stream of generally complex-valued (I+jQ) modulation symbols that is provided to a symbol interleaver 17, which shuffles the order of the modulation symbols, separating formerly successive symbols in time. Interleaving helps spread the effect of noise and other impairments in the physical communication channel among the modulation symbols, minimizing the chances that all of the symbols of a codeword will be affected and taking advantage of the built-in time diversity of the multi-level block code.
The symbol interleaver 17 also separates the interleaved symbols into in-phase (I) and quadrature (Q) components, which undergo pulse-shaping by filters 18, and the filtered components are then converted from digital to analog form by D/A converters 19. The analog signals are further spectrally shaped by filters 20, and the filter output signals are applied to an I, Q modulator 21, which quadrature modulates a carrier signal with those signals. The modulated carrier signal is then amplified by a suitable amplifier 22, and the amplified carrier signal is transmitted via an antenna 23.
Similar processes are used to decode the modulated carrier signal received by a receiver and recover the information signal that was sent. As illustrated in FIG. 1b, the modulated carrier signal collected by an antenna 25 is selected by a suitable bandpass filter 26 and amplified by a suitable amplifier 27. The amplified signal is then translated in frequency by a down-converter 28, which is typically a balanced mixer and suitable oscillator, either directly to baseband or as illustrated to an intermediate frequency (IF) and then the IF signal is translated to baseband by an IF down-converter 29. In either case, the baseband signal comprises I' and Q' components, which are converted from analog to digital form by A/D converters 30. The digitized I' and Q' components are then provided to a sample timing selector 31, the output of which is a stream of complex-valued 8-PSK modulation symbols that is provided to a de-interleaver 32.
The de-interleaver 32 reverses the shuffling performed by the symbol interleaver 17 and generates a stream of modulation symbols that is identical to the stream generated by the bits-to-symbol mapper 16. The de-interleaved symbols produced by the de-interleaver 32 are applied to a BCM decoder 33, which transforms the de-interleaved symbols into parallel data symbol streams i.sub.0, i.sub.1, i.sub.2. The data symbol streams are then applied to a speech decoder 34, which reverses the encoding performed by the speech encoder 13 and produces a speech signal.
As described above, the BCM encoder 14 uses the triplets {b.sub.2 b.sub.1 b.sub.0 } of block code symbols as addresses for the 8-PSK symbols, which may be stored in a memory at locations identified by the addresses. The relationship between the triplets and the modulation symbols is called a "mapping", and typically either natural order binary mapping or Gray code mapping is used. FIG. 2 illustrates a BCM encoder 14 in which C.sub.0 is a (4,1) repetition code and C.sub.1 and C.sub.2 are (4,3) single-parity-check codes, and FIG. 3 illustrates the natural binary mapping of triplets to 8-PSK symbols. In the encoder illustrated in FIG. 2, the block length N of the codes C.sub.0, C.sub.1, C.sub.2 is four, and thus four triplets of block code symbols {111}, {100}, {110}, and {101} are used to select four 8-PSK symbols that compose the BCM codeword {S.sub.1 S.sub.2 S.sub.3 S.sub.4 }. In this example of natural binary mapping, the bits-to-symbol mapper 16 would transform code bit triplets to 8-PSK modulation symbols using the following rule: EQU modulation symbol number=4b.sub.2 +2b.sub.1 +b.sub.0
where the eight 8-PSK modulation symbols, indicated in the complex plane by the "x" marks, are consecutively numbered counter clockwise starting from the positive real axis as shown in FIG. 3.
One of the main features of block coded modulation schemes is that each class of bits may be encoded by a different code, and thus unequal error protection of the bits can be readily achieved. The unequal error protection is useful particularly for speech data, where all the bits are not equally important in a perceptual sense. Optimizing a coded modulation scheme to achieve a desired BER performance involves choosing the component codes and the appropriate bits-to-symbol mapping scheme that achieve the desired performance specifications. It is often desirable to improve the BER performance of a specific class of bits without increasing decoding complexity significantly or affecting the BER performance of the other classes of bits.